package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.Message;
import cn.wolfcode.trip.base.query.MessageQuery;
import cn.wolfcode.trip.base.query.QueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * IMessageService class
 *
 * @author lishuanwang
 * @date 2019/5/30
 */
public interface IMessageService {
    /**
     * 添加一条消息
     * @param message: 消息记录
     */
    void save(Message message);

    /**
     * 获取所有的消息,分页
     * @Param qo:
     * @return pageinfo,分页消息
     */
    PageInfo<Map> listAll(MessageQuery qo);

    /**
     * 获取用户没有读消息的条数
     * @param userId:用户id
     * @return
     */
    int getUnReadInfoNums(Long userId);


    /**
     * 更新信息的读取状态.
     * @param qo:查询对象
     */
    void updateMessageRead(MessageQuery qo);

    /**
     * 获取单个用户的单个聊天的未读消息数量
     * @param qo
     * @return
     */
    Integer getUnReadMessageNums(MessageQuery qo);

    Integer getUserUnReadMessageNums(MessageQuery qo);

    PageInfo getChatRoomMessage(Long groupId, QueryObject qo);
}
